package com.bsb.base.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.bsb.base.model.BsbCardBuyExample;
import com.bsb.base.model.BsbFirmExample;
import com.bsb.base.model.BsbUserExample;
import com.bsb.base.model.CardBuy;
import com.bsb.base.model.Invite;
import com.bsb.base.model.UserFirm;

public interface InviteMapper {

	int getCountInvite(@Param("firmname")String firmname, @Param("supername")String supername, @Param("example")BsbUserExample bsbUserExample);

	List<Invite> getInvites(@Param("firmname")String firmname, @Param("supername")String supername, @Param("example")BsbUserExample bsbUserExample);
	
	int secondInviteNum(@Param("inviteBy")String inviteBy);
	
	int fstCardBuyNum(@Param("inviteBy")String inviteBy);
	
	int secondCardBuyNum(@Param("inviteBy")String inviteBy);
	
	Double totalMoney(@Param("inviteBy")String inviteBy);

	int countFstInvites(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample);

	List<UserFirm> getFstInvites(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample);
	
	int count2ndInvites(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample,@Param("supername")String supername);
	
	List<Invite> get2ndInvites(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample,@Param("supername")String supername);
	
	int count1stCardBuy(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample,@Param("cardBuyExample")BsbCardBuyExample cardBuyExample);
	
	List<CardBuy> get1stCardBuy(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample,@Param("cardBuyExample")BsbCardBuyExample cardBuyExample);
	
	int count2ndCardBuy(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample,@Param("cardBuyExample")BsbCardBuyExample cardBuyExample,@Param("inviteBy")String inviteBy);
	
	List<CardBuy> get2ndCardBuy(@Param("bsbUserExample")BsbUserExample bsbUserExample, @Param("firmExample")BsbFirmExample firmExample,@Param("cardBuyExample")BsbCardBuyExample cardBuyExample,@Param("inviteBy")String inviteBy);
}
